package data_structure.sequence_list;

/**
 * 当前：current
 * 当前结点
 * cur = head;
 * cur = cur.next 让cur指向cur.next指向的对象
 * cur.next cur目前指向的对象的next引用（下一个）
 */
public class 关于链表的操作但本身不是一个链表 {
    // 创建链表
    // int[] -> Node head
    public static Node 根据数组创建链表() {
        // TODO:
        return null;
    }

    public static Node 手动去创建结点然后构建链表() {
        Node n1 = new Node(100);
        Node n2 = new Node(200);
        Node n3 = new Node(300);
        Node n4 = new Node(400);
        Node n5 = new Node(500);
        Node n6 = new Node(600);

        n1.next = n2;
        n2.next = n3;
        n3.next = n4;
        n4.next = n5;
        n5.next = n6;
        n6.next = null;

        return n1;
    }

    // 链表的遍历操作
    public static void 遍历一条链表_打印链表中的每个元素(Node head) {
        // 参数 head，是我们手上的唯一线索，如何完成链表的遍历？
        // 需要循环完成，拿什么作为遍历时的 内容 进行

        Node cur = head;        // 让 cur 指向 head 指向的对象（链表的头结点对象）
        while (cur != null) {
            cur = cur.next;
        }

        // cur 会经历链表中的每个结点：按照从前往后的顺序，每个结点只会经过一次
    }

    public static void main(String[] args) {
        Node head = 手动去创建结点然后构建链表();

        遍历一条链表_打印链表中的每个元素(head);
    }
}